﻿namespace Syngine.Components
{
	/// <summary>
	/// 
	/// </summary>
	public interface ICommandHandler
	{
		/// <summary>
		/// Handles the specified command.
		/// </summary>
		/// <param name="command">The command.</param>
		void Handle(ICommand command);
	}

	/// <summary>
	/// 
	/// </summary>
	public interface ICommandHandler<TCommand> : ICommandHandler where TCommand : ICommand
	{
		/// <summary>
		/// Handles the specified command.
		/// </summary>
		/// <param name="command">The command.</param>
		void Handle(TCommand command);
	}
}